package com.gnerv.battle.boot.module.base.service;

import com.gnerv.battle.boot.module.base.model.bo.ViewBO;
import com.gnerv.battle.boot.module.base.model.dto.ViewDTO;
import com.gnerv.battle.boot.module.base.model.dto.ViewTreeDTO;
import lombok.NonNull;

import java.util.List;
import java.util.Set;

/**
* @author Gnerv LiGen
*/
public interface ViewService {

    boolean create(@NonNull ViewBO viewBO);

    boolean deleteByUkId(@NonNull String ukId);

    boolean updateByUkId(@NonNull ViewBO viewBO);

    ViewDTO selectByUkId(@NonNull String ukId);

    List<ViewDTO> listByName(String name);

    List<ViewDTO> listByParentUkId(@NonNull String parentUkId);

    List<ViewTreeDTO> listTree(String parentUkId);

    boolean bindRole(@NonNull String viewUkId, @NonNull Set<String> roleUkIdList);

    boolean unbindRole(@NonNull String viewUkId);
}
